package 算法.NiuKe.JZ;

/**
 * @author:谢君臣
 * @Date:2021/4/2216:28
 * @version:1.0
 * @function:   请实现一个函数用来判断字符串是否表示数值（包括整数和小数）。
 * 例如，字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。
 * 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
 */
public class JZ54 {
    public static void main(String[] args) {
        System.out.println(isNumeric("5e2"));
    }
    public static boolean isNumeric (String str) {
        // write code here
        String[] split = null;
        if (str.contains("e"))
            split = str.split("e");
        else
            split = str.split("E");
        if (split.length>1){
            try {
                Double head = Double.parseDouble(split[0]);
            } catch (NumberFormatException e) {
                return false;
            }
            try {
                int end = Integer.parseInt(split[1]); // 科学计数法后面一定为整数
            } catch (NumberFormatException e) {
                return false;
            }
        }else{
            try {
                Double head = Double.parseDouble(str);
            } catch (NumberFormatException e) {
                return false;
            }
        }
        return true;
    }
}
